package com.springboot.demo.sort;

/**
 * 冒泡排序，稳定
 *
 * <p>
 * 算法思想：
 * <p>
 * 1、将序列中所有元素两两比较，将最大的放在最后面。
 * <p>
 * 2、将剩余序列中所有元素两两比较，将最大的放在最后面。
 * <p>
 * 3、重复第二步，直到只剩下一个数。
 *
 * 时间复杂度：o(n^2)
 * 空间复杂度：o(1)
 *
 * @author supu
 * @date 2019-12-12 13:53
 **/
public class BubbleSort {
    public static void bubbleSort(int[] a) {
        int length = a.length;
        for (int i = 0; i < length - 1; i++) {
            for (int j = i + 1; j < length; j++) {
                if (a[i] > a[j]) {
                    // 遇到比自己大的数就交换位置
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
    }

    public static void bubbleSort1(int[] a){
        int length = a.length;
        for (int i = 0; i < length-1; i++) {
            for (int j = i+1; j < length; j++) {
                if(a[i] > a[j]){
                    int temp = a[i];
                    a[i] = a[j];
                    a[j]=temp;
                }
            }
        }
    }
}
